package org.nf.sms.dao;

import org.nf.sms.entity.Staff;

import java.util.List;

/**
 * 员工数据访问对象 - 定义一系列操作员工信息表的相关操作 - 增、删、改、查 - 服务于业务
 *
 * @Author zqx
 * @Date 2024-03-08
 */
public interface StaffDao {

    /**
     * 添加员工 - 服务于注册员工
     *
     * @param staff 封装的员工信息
     * @return
     */
    int insert(Staff staff);


    /**
     * 删除员工
     *
     * @param id 员工编号
     * @return 受影响行数
     */
    int delete(int id);


    /**
     * 修改员工信息
     *
     * @param staff
     * @return
     */
    int update(Staff staff);

    /**
     * 根据 ID 查询员工
     *
     * @param id
     * @return
     */
    Staff selectById(int id);

    /**
     * 分页查询
     *
     * @param limit 偏移量 = (当前页 - 1) * 每页记录数
     * @param count 查询记录数
     * @return
     */
    List<Staff> selectByPage(int limit, int count);

    /**
     * 查询总记录数 - 查询一行一列的数据
     *
     * @return
     */
    Long selectTotalCount();
}
